package org.tbwork.utility.toolbox;

import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class tbConvert {

	/**
	 * 日期转字符串-1
	 * 
	 * @param ts
	 *            日期
	 * @return 日期字符串，如: 1989-02-21 12:12:12
	 */
	public static String Timestamp2String(Timestamp ts) {
		String tsStr = "";
		DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		try {
			// 方法一
			tsStr = sdf.format(ts);
		} catch (Exception e) {
			e.printStackTrace();
			tsStr = "1989-02-21 23:59:59";
		}
		return tsStr;
	}

	/**
	 * 日期转字符串-2
	 * 
	 * @param ts
	 *            日期
	 * @return 日期字符串，如: 1989/02/21 12:12:12
	 */
	public static String Timestamp2String2(Timestamp ts) {
		String tsStr = "";
		DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
		try {
			// 方法一
			tsStr = sdf.format(ts);
		} catch (Exception e) {
			e.printStackTrace();
			tsStr = "1989-02-21 23:59:59";
		}
		return tsStr;
	}

	/**
	 * 字符串转日期
	 * 
	 * @param str
	 * @return 字符串转日期
	 */
	public static Timestamp StringToTimestamp(String str) {
		Timestamp ts = new Timestamp(System.currentTimeMillis());

		try {
			if(str.length()<18)
			{
				str = str + " 00:00:00";
			}
			ts = Timestamp.valueOf(str);

		} catch (Exception e) {
			e.printStackTrace();
			ts = new Timestamp(0);
		}
		return ts;
	}

	/**
	 * 用于接收来自页面提交的参数的中文值 转 UTF8
	 * 
	 * @param paramName
	 * @return 用于接收来自页面提交的参数的中文值 转 UTF8
	 */
	public static String getUtf8(String paramName) {
		try {
			String result = "";
			if (paramName != null)
				result = new String(paramName.getBytes("iso-8859-1"), "utf-8");
			return result;
		} catch (Exception e) {
			return "";
		}
	}

	/**
	 * 中文字符转Unicode编码字符串 比如 中国 => \u4e2d\u56fd
	 * 
	 * @param string 汉字字符串
	 * @return  Unicode编码字符串
	 */
	public static String string2Unicode(String string) {
		StringBuffer unicode = new StringBuffer();
		for (int i = 0; i < string.length(); i++) {

			// 取出每一个字符
			char c = string.charAt(i);
			// 转换为unicode

			unicode.append("\\u" + Integer.toHexString(c));

		}
		return unicode.toString();
	}

	/** Unicode 编码字符串 转实际汉字  比如    \u4e2d\u56fd  => 中国
	 * @param unicode Unicode编码字符串
	 * @return 汉字字符串
	 */
	public static String unicode2String(String unicode) {

		StringBuffer string = new StringBuffer();

		String[] hex = unicode.split("\\\\u");

		for (int i = 1; i < hex.length; i++) {

			// 转换出每一个代码点

			int data = Integer.parseInt(hex[i], 16);

			// 追加成string

			string.append((char) data);

		}

		return string.toString();

	}
	
	
	
	/**
	 * @param time
	 * @return
	 */
	public static Calendar convert2Canlendar(Timestamp time)
	{
		  Calendar result = Calendar.getInstance();
		  result.setTimeInMillis(time.getTime());
		  return result;
	}
	

}
